Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(web,dashboard): migrate dashboard v2 #7741

Open
wants to merge 3 commits into
base: next
Choose a base branch
from

Conversation

LetItRock
Copy link
Contributor

What changed? Why was the change needed?

IMPORTANT

Before merging this PR make sure we did all the "Release process" steps described in the ticket.


Corresponding enterprise repo PR: https://github.com/novuhq/packages-enterprise/pull/270

Please check the ticket to understand all the requirements.
In short, we would like to have the new Dashboard app as the main entry point for the dashboard.novu.co domain.

The changes in the Web app:

  • the sign-in and sign-up routes will redirect to the new Dashboard corresponding routes
  • removed the questionnaire and getting-started pages and all related code
  • updated user profile link to the Dashboard: Try out the new Dashboard - removed beta

The changes in the Dashboard app:

  • for the opted-out users the bookmarked pages will redirect to the old web application routes
  • removed opt-in modal and google docs form
  • improved opt-in logic with handling Clerk webhook event, PR

Screenshots

Screen.Recording.2025-02-17.at.16.52.32.mov
Screen.Recording.2025-02-17.at.17.35.50.mov
Screen.Recording.2025-02-17.at.16.58.54.mov

Copy link

linear bot commented Feb 17, 2025

Copy link

netlify bot commented Feb 17, 2025

Deploy Preview for dev-web-novu ready!

Name Link
🔨 Latest commit fd13e7f
🔍 Latest deploy log https://app.netlify.com/sites/dev-web-novu/deploys/67b36c75b86dd20009372b42
😎 Deploy Preview https://deploy-preview-7741.dashboard.novu-staging.co
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link

netlify bot commented Feb 17, 2025

Deploy Preview for dashboard-v2-novu-staging ready!

Name Link
🔨 Latest commit fd13e7f
🔍 Latest deploy log https://app.netlify.com/sites/dashboard-v2-novu-staging/deploys/67b36c756cfe22000856b348
😎 Deploy Preview https://deploy-preview-7741.dashboard-v2.novu-staging.co
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link

LaunchDarkly flag references

❌ 1 flag removed

Name Key Aliases found Info
IS_HUBSPOT_ONBOARDING_ENABLED IS_HUBSPOT_ONBOARDING_ENABLED ✅ all references removed

Copy link

pkg-pr-new bot commented Feb 17, 2025

Open in Stackblitz

@novu/client

npm i https://pkg.pr.new/novuhq/novu/@novu/client@7741

@novu/headless

npm i https://pkg.pr.new/novuhq/novu/@novu/headless@7741

@novu/node

npm i https://pkg.pr.new/novuhq/novu/@novu/node@7741

@novu/notification-center

npm i https://pkg.pr.new/novuhq/novu/@novu/notification-center@7741

novu

npm i https://pkg.pr.new/novuhq/novu@7741

@novu/providers

npm i https://pkg.pr.new/novuhq/novu/@novu/providers@7741

@novu/shared

npm i https://pkg.pr.new/novuhq/novu/@novu/shared@7741

commit: fd13e7f

@@ -32,7 +32,7 @@ export const OrganizationDropdown = () => {
<ClerkOrganizationSwitcher
hidePersonal
skipInvitationScreen
afterCreateOrganizationUrl={ROUTES.USECASE_SELECT + '?v2_opt_in=true'}
afterCreateOrganizationUrl={ROUTES.USECASE_SELECT}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the opt-in logic is now handled with the Clerk webhook event: https://github.com/novuhq/packages-enterprise/pull/270

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could it be that there will be some delivery delay on their webhook? It happened before, and during that time our service might redirect the user to the wrong place. How can we ensure that by the time the user reaches the USECASE SELECT he already opted in?

@@ -28,8 +28,6 @@ export const MIXPANEL_KEY = import.meta.env.VITE_MIXPANEL_KEY;

export const LEGACY_DASHBOARD_URL = import.meta.env.VITE_LEGACY_DASHBOARD_URL;

export const NEW_DASHBOARD_FEEDBACK_FORM_URL = import.meta.env.VITE_NEW_DASHBOARD_FEEDBACK_FORM_URL;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed the google feedback form

Comment on lines +14 to +18
if (isLoaded && status !== NewDashboardOptInStatusEnum.OPTED_IN) {
redirectToLegacyDashboard();

return null;
}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when the user is opted-out redirect him to the old dashboard with preserving the URL route and query params

@@ -120,7 +119,6 @@ export const WorkflowsPage = () => {
<>
<PageMeta title="Workflows" />
<DashboardLayout headerStartItems={<h1 className="text-foreground-950 flex items-center gap-1">Workflows</h1>}>
<OptInModal />
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed opt-in modal

@@ -77,7 +69,6 @@ const AuthRoutes = () => {
<Route path={ROUTES.AUTH_RESET_REQUEST} element={<PasswordResetPage />} />
<Route path={ROUTES.AUTH_RESET_TOKEN} element={<PasswordResetPage />} />
<Route path={ROUTES.AUTH_INVITATION_TOKEN} element={<InvitationPage />} />
<Route path={ROUTES.AUTH_APPLICATION} element={<QuestionnairePage />} />
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the questionnaire page and all related code. All old/new users will sign-in/up through the new Dashboard and it's flow.

Comment on lines -63 to -74
<NavMenuLinkButton
label="Get started"
isVisible={!isLoadingOnboardingStatus && showOnboarding}
icon={<IconTaskAlt />}
link={ROUTES.GET_STARTED}
testId="side-nav-quickstart-link"
rightSide={{
node: <VisibilityButton onClick={handleHideOnboardingClick} />,
triggerOn: 'hover',
tooltip: 'Hide this page from menu',
}}
/>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no get-started link in the side nav

@@ -14,7 +14,7 @@ export function UserProfileButton() {
>
<UserButton.MenuItems>
<UserButton.Action
label="Try out the new Dashboard (beta)"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed beta label

Comment on lines +6 to +10
useEffect(() => {
window.location.href = `${NEW_DASHBOARD_URL}/auth/sign-in`;
}, []);

return null;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for the web app sign-in/up pages redirect to the new Dashboard corresponding pages

@@ -189,21 +186,12 @@ export function IntegrationsListModal({
channel={provider?.channel}
/>

{isV2Enabled ? (
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no need for this as we enabled it long time ago

import { INTERCOM_APP_ID } from '../../../../../config';
import { discordInviteUrl, notificationCenterDocsUrl, OnBoardingAnalyticsEnum } from '../../../../quick-start/consts';

export function Faq() {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

moved from another place

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants